1. Technical Field
This disclosure relates to a communication apparatus, a method of executing a plurality of application communications on a network, and a computer program product.
2. Description of the Related Art
In a TCP/IP communication, which is a protocol typically used in the Internet and an intranet, a protocol processing for the communication is performed by central processing units (CPUs) of network servers and the like that handle network data. Such a protocol processing imposes a heavy load on the CPUs.
In recent years, network speed has been increased to be higher than speed that the CPUs can process.
Therefore, to reduce the load of the network processing in the network servers, a solution called Transmission Control Protocol/Internet Protocol (TCP/IP) offload Engine (TOE) is proposed (see, for example, Japanese Patent Application Laid-open No. 2006-014143). The TOE is a hardware version of network protocol processing that requires long CPU processing time in the network processing, checksum processing for network protocols, and the like. More specifically, the TOE is a hardware for consistently applying TCP/UDP header processing and IP header processing to a packet formed by upper layers of a TCP layer in an open system interconnection (OSI) seven-layer reference model. The TOE can reduce CPU loads of the network servers by partially or entirely performing the network processing (TCP/IP processing). In general, communication subjected to hardware processing operates faster than software processing. Therefore, it is possible to improve an overall system throughput.
However, because the TOE is hardware implementation, communication ability substantially depends on hardware limitations such as a memory capacity. Specifically, the TOE has a large influence on the number of sessions. In some case, a communication upper limit is limited to about several sessions to several tens sessions. Such a problem does not occur when a hardware configuration has a sufficient ability for necessary communication. However, this is often impossible because of a reduction in size and a reduction in cost.
As a solution for such a problem, a method of properly using both hardware communication by the TOE and software communication is conceivable. It is possible to prevent problems such as the upper limit of the number of sessions by using the software communication in the past for communication to which the TOE cannot be allocated.
However, when the method described above is adopted, a method of properly using the hardware communication and the software communication substantially affects communication performance of communication as a whole. For example, when “TOE is allocated in order from communication started earlier” as a simple method of properly using the hardware communication and the software communication, even if there is communication started later having both large traffic and high communication frequency, the software communication is allocated to the communication. If the TOE can be preferentially allocated to such communication, performance of communication as a whole can be improved. The improvement of communication performance does not mean a simple increase in average communication speed but indicates overall optimization of communication on condition that the TOE is allocated to necessary communication even if the average communication speed is decreased. For example, if there is communication for which it is desired to use the TOE because of communication speed even if traffic is small and frequency is low, the TOE should be allocated to the communication.
In other words, realized communication performance depends on an environment of use of a communication apparatus. In a certain environment, an increase in the average communication speed is required as communication performance, in another environment, an increase in communication speed is required for specific communication, and in still another environment, an increase in communication speed is required for security communication.